package com.tedu.api.ee;

import org.junit.Test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

/**
 * 考试题：throw与throws的区别
 *                    异常关键字：throw--主动抛出异常
 *                    语法：定义在方法体中，如果执行throw，一定抛出异常对象RunTimeException
 *                    指定主动抛出异常对象名字
 *                    throw new RunTimeException()
 *                    特点：定义异常，原因程序不合理
 *                              throws--抛出异常不解决 【被动抛出异常】 √
 *                    语法：定义在方法或者主方法后面，(单元测试也行)
 *                    异常对象名称，多个异常对象逗号分隔
 *                    throws IOException,Exception
 *                    特点：抛出异常中存在较大的异常，小异常去掉，包括小异常！
 *                         抛出异常都是同等级异常：小异常！
 *   RunTimeException 运行期异常：①主动产生异常
 *                              ②控制台产生异常
 */
public class Person {
//    @Test
//    public void test01() throws FileNotFoundException, IOException , UnsupportedEncodingException {
//        FileInputStream fis=new FileInputStream("");
//        fis.read();
//    }
    private int age;//私有属性

    public int getAge() {
        return age;
    }

    public void setAge(int age) { //设置年龄：0~120岁，主动抛出异常
        if(age<0||age>120){ //判断： 人 年龄一定在0~120之间，如果超出，抛出异常
            throw new RuntimeException("好好填");
        }
        this.age = age;
    }

    public static void main(String[] args) {
        Person p=new Person();
        p.setAge(-1200);
        System.out.println("我的年龄是："+p.getAge()+"岁");
    }
}
